home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / PROGRAMM / 2336A.ZIP / SCRDISK1.EXE / arc / SKELETON.C < prev    next >
Text File  |  1990-04-23  |  5KB  |  217 lines

  1. /*----------------------------------------------------------------------------
  2.                         Turbo ScrEdit Skeleton v.1.0
  3.  
  4.                        for Turbo Pascal 4.0, 5.0, 5.5
  5.  
  6. Refer to TURBO SCREDIT TUTOR - PART 2 for a complete discussion on how
  7. this file is to be used.
  8.  
  9. ----------------------------------------------------------------------------*/
  10. #include <conio.h>
  11. /*--**Version**-*/
  12.  
  13.  
  14.  
  15.  
  16. /*--**Buffers**-*/
  17.  
  18.  
  19.  
  20.  
  21. /*--**User Variables**-*/
  22.  
  23. int Demo_Screen_Pointer;
  24. int Demo_Current_Screen;
  25. int Demo_Load_Screen;
  26. int Demo_Mode;
  27.  
  28.  
  29.  
  30.  
  31. /*--** Example of loading and displaying screens**-*/
  32.  
  33. void Load_Screen()
  34. {
  35. S_Num = -1;
  36. while (S_Num == -1)
  37.     {
  38.     Demo_Screen_Pointer++;
  39.     switch (Demo_Screen_Pointer)
  40.        {
  41.  
  42. /*--**Screens**-*/
  43.  
  44.        }
  45.     if (S_Num == -1) Demo_Screen_Pointer = 0;
  46.     }
  47. strcpy(S_UserMsg,
  48.    "<F1> change screen  <ESC> exit  Press special keys for demo ");
  49. }
  50.  
  51.  
  52.  
  53.  
  54. void Initialize_Program()
  55. {
  56.  
  57.  
  58. /*--**ScreenFileName**-*/
  59.  
  60.  
  61.  
  62. /*--**InitRoutines**-*/
  63.  
  64.  
  65.  
  66. /*--**System Switches**-*/
  67.  
  68. S_ErrorSound   = 1;
  69. S_ErrorFreq    = 300;
  70. S_ErrorDur     = 50;
  71. S_ErrorBg      = RED;
  72. S_ErrorFg      = YELLOW;
  73.  
  74. S_HelpSound    = 1;
  75. S_HelpFreq     = 200;
  76. S_HelpDur      = 50;
  77. S_HelpBg       = BLUE;
  78. S_HelpFg       = CYAN;
  79.  
  80. S_UserSound    = 1;
  81. S_UserFreq     = 100;
  82. S_UserDur      = 50;
  83. S_UserBg       = BLACK;
  84. S_UserFg       = WHITE;
  85. S_UserMsg[0]   = 0;
  86.  
  87. S_ShowStatus   = 1;
  88. S_StBg         = BLACK;
  89. S_StFg         = GREEN;
  90. S_StLabelBg    = LIGHTGRAY;
  91. S_StLabelFg    = BLACK;
  92.  
  93. S_EnterAsTab   = 0;
  94. S_AutoHelp     = 0;
  95. S_AutoValidate = 0;
  96.  
  97. S_Cursor       = S_NORMAL;
  98. S_Point        = -1;
  99.  
  100.  
  101.  
  102. /*--** 1st Example Code **-*/
  103.  
  104. Demo_Current_Screen = -1;
  105. Demo_Mode           = 1;
  106. Load_Screen();
  107. }
  108.  
  109.  
  110. void Process_Current_Screen()
  111. {
  112.  
  113.  
  114. /*--** Demo mode 2 **-*/
  115.  
  116.  
  117. if (Demo_Mode == 2)
  118.    {
  119.    if (s_indx->A.s_compiledind[S_Num] < 3)
  120.       S_ReadKey();
  121.    else
  122.        do
  123.          {
  124.          if  (S_Point > s_indx->A.s_count[S_Num]) S_Point = -1;
  125.          while ((S_Point==-1)||(s_field->C.s_type[S_Point]>9))
  126.              if (++S_Point >= s_indx->A.s_count[S_Num]) S_Point = -1;
  127.          if  (S_UserMsg[0]!=0)
  128.              {
  129.              itoa(S_Point,S_NewStr,10);
  130.              strcpy(S_UserMsg,"Field <");
  131.              strcat(S_UserMsg,S_NewStr);
  132.              strcat(S_UserMsg,">");
  133.              }
  134.          S_ReadField();
  135.          if  ((S_Enter)||(S_Tab))
  136.              S_Point++;
  137.          }
  138.       while ((!S_Alt)&&(!S_Ctrl) && (!S_Fkey) && (!S_Enter));
  139.    }
  140.  
  141.  
  142.  
  143. /*--** Demo mode 0 or 1 **-*/
  144.  
  145.  
  146.  
  147. if (Demo_Mode != 2)
  148.    S_ReadScreen();
  149.  
  150.  
  151. /*--** Example code for demonstration mode **-*/
  152.  
  153.  
  154. if  ((S_F1) && (Demo_Mode>0))
  155.     {
  156.     strcpy(S_UserMsg,"Press any key to load the next screen");
  157.     S_ReadKey();
  158.     Load_Screen();
  159.     }
  160.  
  161. /*--**Special Key Testing**-*/
  162.  
  163.  
  164. if  ((S_Fkey) && (!S_F1))
  165.     {
  166.     strcpy(S_UserMsg,"< >");
  167.     if  (S_Ch > 31) S_UserMsg[1]=S_Ch;
  168.  
  169.     if  (S_ScrollLock)  strcat(S_UserMsg,"<Scroll Lock>");
  170.     if  (S_NumLock)     strcat(S_UserMsg,"<Num Lock>");
  171.     if  (S_Caps)        strcat(S_UserMsg,"<Caps>");
  172.     if  (S_InsertMode)  strcat(S_UserMsg,"<Insert Mode>");
  173.     if  (S_LeftShift)   strcat(S_UserMsg,"<Left Shift>");
  174.     if  (S_RightShift)  strcat(S_UserMsg,"<Right Shift>");
  175.     if  (S_Alt)         strcat(S_UserMsg,"< Alt  >");
  176.     if  (S_Ctrl)        strcat(S_UserMsg,"< Ctrl >");
  177.     if  (S_Esc)         strcat(S_UserMsg,"<Escape>");
  178.     if  (S_F1)          strcat(S_UserMsg,"<F1>");
  179.     if  (S_F2)          strcat(S_UserMsg,"<F2>");
  180.     if  (S_F3)          strcat(S_UserMsg,"<F3>");
  181.     if  (S_F4)          strcat(S_UserMsg,"<F4>");
  182.     if  (S_F5)          strcat(S_UserMsg,"<F5>");
  183.     if  (S_F6)          strcat(S_UserMsg,"<F6>");
  184.     if  (S_F7)          strcat(S_UserMsg,"<F7>");
  185.     if  (S_F8)          strcat(S_UserMsg,"<F8>");
  186.     if  (S_F9)          strcat(S_UserMsg,"<F9>");
  187.     if  (S_F10)         strcat(S_UserMsg,"<F10>");
  188.     if  (S_F11)         strcat(S_UserMsg,"<F11>");
  189.     if  (S_F12)         strcat(S_UserMsg,"<F12>");
  190.     if  (S_Home)        strcat(S_UserMsg,"<Home>");
  191.     if  (S_End)         strcat(S_UserMsg,"<End>");
  192.     if  (S_PgUp)        strcat(S_UserMsg,"<PgUp>");
  193.     if  (S_PgDn)        strcat(S_UserMsg,"<PgDn>");
  194.     if  (S_Left)        strcat(S_UserMsg,"<Left>");
  195.     if  (S_Right)       strcat(S_UserMsg,"<Right>");
  196.     if  (S_Up)          strcat(S_UserMsg,"<Up>");
  197.     if  (S_Down)        strcat(S_UserMsg,"<Down>");
  198.     if  (S_Ins)         strcat(S_UserMsg,"<Insert>");
  199.     if  (S_Del)         strcat(S_UserMsg,"<Delete>");
  200.     if  (S_Tab)         strcat(S_UserMsg,"<Tab>");
  201.     if  (S_BkSp)        strcat(S_UserMsg,"<Back Space>");
  202.     if  (S_Enter)       strcat(S_UserMsg,"<Enter>");
  203.     }
  204. }
  205.  
  206.  
  207. main()
  208. {
  209. Initialize_Program();
  210.  
  211. while (!S_Esc) Process_Current_Screen();
  212.  
  213. /*--** Closing The screen file **--*/
  214.  
  215. S_CloseScreenFile();
  216. }
  217.